IF exists(SELECT * FROM dbo.sysobjects WHERE name='vakrapportMaakXSL' AND xtype='P') 
BEGIN
	DROP PROCEDURE vakrapportMaakXSL
END
GO

CREATE        PROCEDURE vakrapportMaakXSL(@periode char(2),@schooljaar char(4))
as
delete from vakrapportXSL 
	where periode = @periode 
		and jaar = @schooljaar
--De veranderlijken, die de waarden uit de tabel zullen opslaan en de bijhorende cursor.
declare @klas varchar(5)
declare @snippet varchar(8000)
declare @TeXsnippet varchar(8000)
declare @deKlas varchar(5)
declare @dePeriode varchar(2)
declare @@ptrXSL varbinary(16)
declare @@ptrTeX varbinary(16)
declare @nLine char(2)
declare @tLine char(2)
set @nLine= char(13)+char(10)
set @tLine= char(20) + char(13)+char(10)
set @deKlas=''

--De tabel wordt ingelezen
declare deCursor cursor local for 
select c.klas,x.tekst,t.tekst
from vakrapportXSLCompositie as c 
  left join vakrapportXSLSnippets as x
	on c.xslNaam = x.xslNaam
		and c.periode = x.periode
  left join vakrapportTeXsnippets as t
	on c.xslNaam = t.xslNaam
		and c.periode = t.periode
  where c.periode = @periode 
  order by klas, c.voorstelNr
for read only


open deCursor
fetch next from deCursor into @klas,@snippet,@TeXsnippet
while (@@fetch_status=0)
begin
  if not(@klas = @deKlas)
    begin
	insert into vakrapportXSL(klas,periode,jaar,XSLTekst,TeXtekst)
	values(@klas,@periode,@schooljaar,'','')

	select @@ptrXSL = textptr(XSLTekst) from vakrapportXSL
	  where klas = @klas and periode = @periode and jaar=@schooljaar
	select @@ptrTeX = textptr(TeXtekst) from vakrapportXSL
	  where klas = @klas and periode = @periode and jaar=@schooljaar
	set @deKlas = @klas
    end

  updatetext vakrapportXSL.XSLtekst @@ptrXSL null 0 @snippet
  updatetext vakrapportXSL.XSLtekst @@ptrXSL null 0 @nLine
  updatetext vakrapportXSL.XSLtekst @@ptrXSL null 0 @nLine 
  updatetext vakrapportXSL.TeXtekst @@ptrTeX null 0 @TeXsnippet
  updatetext vakrapportXSL.TeXtekst @@ptrTeX null 0 @nLine
  updatetext vakrapportXSL.TeXtekst @@ptrTeX null 0 @nLine
  fetch next from deCursor into @klas, @snippet, @TeXsnippet
end
close deCursor
deallocate deCursor